---
title: Attorney profile maintenance
summary: End-to-end workflow for maintaining attorney bio, availability, and schedule data.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-08-21
operation_id: OP-APP-001
trigger: User navigates to the attorney profile screen via the master-page menu
---

# Attorney profile maintenance

This workflow lets legal administrative staff view and update an attorney's bio, availability, and schedule data through the `frmAttorneyProfile` screen, applying the standard manager template-method lifecycle and AD-group authorization.

| Field | Value |
| --- | --- |
| **Operation ID** | OP-APP-001 |
| **Trigger** | User navigates to `frmAttorneyProfile.aspx` via the master-page menu |
| **Libraries involved** | [SAIF.Application.Claim.Legal](../../libraries/saif-application-claim-legal/overview.md), [SAIF.Business.Claim.Legal](../../libraries/saif-business-claim-legal/overview.md), [SAIF.Application](../../libraries/saif-application/overview.md) |
| **Screens** | Attorney Profile screen (`frmAttorneyProfile.aspx`) |
| **Inputs** | Selected attorney, edited profile/availability/schedule fields |
| **Outputs** | Updated `ATTORNEY_PROFILE`/`ATTORNEY_SCHEDULE` records |

## Steps

1. User navigates via master-page menu to `frmAttorneyProfile.aspx` in LegalMaintenance.
2. `Page_Init` calls `SetActiveManager`, instantiating a legal manager and resolving environment config through `WindowsEnvironmentService`/`AppGlobal`.
3. The manager (from [SAIF.Application.Claim.Legal](../../libraries/saif-application-claim-legal/overview.md), `LegalManagerBase`-derived) runs `Initialize → OnCreateDataLayer → OnCheckSecurity → OnRetrieve`, evaluating the `LNView`/`LNAdmin` AD groups via [SAIF.Application](../../libraries/saif-application/overview.md)'s `UserAccess` cache ([BR-APP-001](../business-rules.md#br-app-001-ad-group-gated-view-only-mode-controls-toolbar-edits)).
4. Data is retrieved from Oracle attorney tables (`ATTORNEY_PROFILE`, `ATTORNEY_SCHEDULE`) through [SAIF.Business.Claim.Legal](../../libraries/saif-business-claim-legal/overview.md) business objects.
5. User edits and saves; the screen calls `Controller.Write`, wrapped in a transaction by the manager.
   - The intended `IsViewOnly` gate is dead code and does not block edits for view-only users ([BR-APP-001](../business-rules.md#br-app-001-ad-group-gated-view-only-mode-controls-toolbar-edits)).

## Process flow

The following diagram visualizes the attorney profile maintenance workflow.

```mermaid
flowchart TD
	Start(["User opens<br>frmAttorneyProfile"]) --> S1["Page_Init resolves manager<br>and environment config"]
	S1 --> S2["Manager lifecycle:<br>Initialize to<br>OnCreateDataLayer to<br>OnCheckSecurity to<br>OnRetrieve"]
	S2 --> S3["Retrieve ATTORNEY_PROFILE /<br>ATTORNEY_SCHEDULE from<br>Oracle"]
	S3 --> S4{User edits and saves?}
	S4 -->|Yes| S5["Controller.Write in<br>transaction"]
	S4 -->|No| EndView([View only, no write])
	S5 --> EndOk([Profile updated])
```

## Failure and edge-case behavior
- Users authorized for `LNView` are intended to have the toolbar disabled, but the whole-page `IsViewOnly` lockdown does not fire due to a `SecurityRole` initialization defect, so intended read-only enforcement never executes.*

## Related documentation
- [Operations and processes](../operations-processes.md)
- [Business rules](../business-rules.md)
- [Data model](../data-model.md)

> **Note:** Statements marked with `*` were inferred from code structure, naming
> conventions, or contextual evidence where direct confirmation was not available
> in source artifacts.

## Sources
- LegalMaintenance web application (LegalMaintenance/*.aspx.vb)
- LegalMaintenance web application (LegalMaintenance/*.aspx.vb)
- [SAIF.Application](../../libraries/saif-application/overview.md)
